﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GSLMS.Services.Interface;
using GSLMS.Entity;
using GSLMS.Entity.DTO;
using GSLMS.DAL;
namespace GSLMS.Services
{
    /// <summary>
    /// 此层为服务层，已经继承了父类BaseService,已经定义好方法请查看BaseService类；若需要自定义方法请在此层增加并在数据层及接口层定义相关的方法
    /// </summary>
    public partial class SAPP_REGINFO : BaseService<TB_APP_REGINFO>, IAPP_REGINFO
    {
        private static readonly GSLMS.DAL.Oracle.APP_REGINFO dal = new GSLMS.DAL.Oracle.APP_REGINFO();
        public override BaseDAL<TB_APP_REGINFO> DAL
        {
            get { return dal; }
        }

        /// <summary>
        /// 判断客户名称是否已经存在,0不用提示，1提示：'客户名称与原有客户名称重复，是否确认保存',2提示：'此客户名称存在未完结的项目，不能登记申请'
        /// </summary>
        /// <param name="regID"></param>
        /// <param name="custNO"></param>
        /// <param name="systemID"></param>
        /// <returns></returns>
        public int isCustExits(long regID, string custNO, int systemID)
        {
            return dal.isCustExits(regID, custNO, systemID);
        }

        /// <summary>
        /// 判断是否存在特批申请，0表示不存在；大于0表示存在，并返回值为特批申请的记录ID
        /// </summary>
        /// <param name="regInfoID">申请登记记录ID</param>
        /// <returns></returns>
        public long IsSpecialExists(long regInfoID)
        {
            return dal.IsSpecialExists(regInfoID);
        }

        /// <summary>
        /// 提取客户信息,通过DataType数据类型获取不同的客户信息,并需要把证件号码传入
        /// </summary>
        /// <param name="searchParam"></param>
        /// <returns></returns>
        public List<TB_APP_REGINFO> GetCustList(TB_APP_REGINFO searchParam)
        {
            return dal.GetCustList(searchParam) ?? new List<TB_APP_REGINFO>();
        }

        /// <summary>
        /// 根据业务类型获取客户登记
        /// </summary>
        /// <param name="bussType"></param>
        /// <returns></returns>
        public List<GSLMS.Entity.TB_APP_REGINFO> GetCustsByBussType(List<int> bussType)
        {
            return dal.GetList(new TB_APP_REGINFO()) ?? new List<TB_APP_REGINFO>();
        }

        /// <summary>
        /// 通过转介申请记录ID提取申请登记信息
        /// </summary>
        /// <param name="refID">转介申请记录ID</param>
        /// <returns></returns>
        public GSLMS.Entity.TB_APP_REGINFO GetByRefID(long refID)
        {
            return dal.GetByRefID(refID);
        }
    }
}
